Updating the content of a presentation vehicle in a computer network

ABSTRACT

In one embodiment, a first search result responsive to a first search request is displayed in a presentation vehicle that is separate from a browser employed by an end-user to submit the first search request. The presentation vehicle may be a pop-under, for example. Upon detection of a second search request submitted by the end-user, the same presentation vehicle may be updated to display a second search result. In another embodiment, a presentation vehicle is employed to display a first content responsive to a first end-user behavior. An end-user behavior may be an activity that an end-user engages in while on a computer network. The end-user behavior may be navigation from one web site to another web site or submission of a search request, for example. The presentation vehicle may be updated to display a second content in response to a second end-user behavior.

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application is a continuation-in-part of U.S. applicationSer. No. 10/289,123, entitled “RESPONDING TO END-USER REQUEST FORINFORMATION IN A COMPUTER NETWORK”, filed on Nov. 5, 2002, by Eugene A.Veteska, David L. Goulden, and Anthony G. Martin, which is incorporatedherein by reference in its entirety.

[0002] This application claims the benefit of U.S. ProvisionalApplication No. 60/457,524, entitled “UPDATING THE CONTENT OF APRESENTATION VEHICLE IN A COMPUTER NETWORK”, filed by Scott Vandevelde,David L. Goulden, and Anthony G. Martin on Mar. 25, 2003, which isincorporated herein by reference in its entirety.

BACKGROUND OF THE INVENTION

[0003] 1. Field of the Invention

[0004] The present invention relates generally to computer systems, andmore particularly but not exclusively to presentation of information ina computer network.

[0005] 2. Description of the Background Art

[0006] The Internet is an example of a computer network. On theInternet, end-users on client computers may access various types ofinformation resident in server computers. A server computer thatprovides information over the Internet is also referred to as a “webserver” or a “web site”. A web site may provide information aboutvarious topics or offer goods and services. Some web sites include asearch engine that allows an end-user to search on the Internet.Examples of such web sites include Yahoo, Google, and Alta Vista. A website may also include a search engine for searching the web site. Forexample, an on-line bookstore may include a search engine for allowing aprospective buyer to look for specific novels available from thebookstore.

[0007] Just like in other medium such as radio and television, companiesmay advertise on the Internet. Advertising revenues may help pay for thedevelopment and maintenance of free software (i.e., a computer program)or a web site. Advertisements on the Internet may be displayed usingvarious presentation vehicles, such as pop-ups, pop-unders, and banners.Pop-ups are typically displayed over a web page to immediately attractan end-user's attention. Pop-unders, on the other hand, are displayedunder a web page, and are not visible until the end-user closes the webpage. Banners are typically displayed as part of a web page.

[0008] Generally speaking, the efficacy of an advertising campaign onthe Internet may be measured in terms of “click-through” rate, whichtakes into account the number of times an advertisement has been clickedon (e.g., using a mouse) by end-users. The higher the click-throughrate, the more effective the advertising. Because effective advertisingresults in higher revenue not only for manufacturers of products beingadvertised but also for companies who display the advertisements,increasing click-through rates is generally desirable.

[0009] To increase the chance of an end-user clicking on anadvertisement, advertisers have developed “targeting techniques” tomatch advertisements with particular end-users. For example, some websites employ cookies to keep track of end-user purchasing activity onthe web site. This allows a web site to advertise to an end-userproducts that are related to those previously purchased by the end-user.A specific example of this targeting technique is to advertise a romancenovel to an end-user who has previously purchased books in the samecategory. Some advertisers also develop end-user profiles that are basedon demographic information. An advertiser may use an end-user profile toidentify advertisements that may be of interest to a particularend-user.

SUMMARY

[0010] The present invention relates to presentation of information in acomputer network. The present invention may be employed in variousapplications including advertising in a computer network such as theInternet, for example.

[0011] In one embodiment, a first search result responsive to a firstsearch request is displayed in a presentation vehicle that is separatefrom a browser employed by an end-user to submit the first searchrequest. The presentation vehicle may be a pop-under, for example. Upondetection of a second search request submitted by the end-user, the samepresentation vehicle may be updated to display a second search result.This advantageously minimizes proliferation of presentation vehicles onthe end-user's computer screen.

[0012] In another embodiment, a presentation vehicle is employed todisplay a first content responsive to a first end-user behavior. Anend-user behavior may be an activity that an end-user engages in whileon a computer network. The end-user behavior may be navigation from oneweb site to another web site or submission of a search request, forexample. The presentation vehicle may be updated to display a secondcontent in response to a second end-user behavior.

[0013] These and other features of the present invention will be readilyapparent to persons of ordinary skill in the art upon reading theentirety of this disclosure, which includes the accompanying drawingsand claims.

DESCRIPTION OF THE DRAWINGS

[0014]FIG. 1 schematically illustrates an embodiment of the presentinvention.

[0015]FIG. 2 shows a schematic diagram of a computer network inaccordance with an embodiment of the present invention.

[0016]FIG. 3 shows a schematic diagram of a client computer inaccordance with an embodiment of the present invention.

[0017]FIG. 4A shows a web browser pointed to an Internet search engine.

[0018]FIG. 4B shows the web browser of FIG. 4A after a search.

[0019]FIG. 5 shows a schematic diagram of a message server computer inaccordance with an embodiment of the present invention.

[0020]FIG. 6, which consists of FIGS. 6A and 6B, shows a flow diagram ofa method of responding to an end-user request for information inaccordance with an embodiment of the present invention.

[0021]FIGS. 7 and 8 show search results in accordance with embodimentsof the present invention.

[0022] FIGS. 9(a)-9(d) schematically illustrate a pop-under inaccordance with an embodiment of the present invention.

[0023]FIG. 10 shows a flow diagram of a method of displaying informationreceived over a computer network in accordance with an embodiment of thepresent invention.

[0024]FIG. 11 shows a flow diagram of another method of displayinginformation received over a computer network in accordance with anembodiment of the present invention.

[0025] The use of the same reference label in different drawingsindicates the same or like components.

DETAILED DESCRIPTION

[0026] In the present disclosure, numerous specific details are providedsuch as examples of systems, components, and methods to provide athorough understanding of embodiments of the invention. Persons ofordinary skill in the art will recognize, however, that the inventioncan be practiced without one or more of the specific details. In otherinstances, well-known details are not shown or described to avoidobscuring aspects of the invention.

[0027] It is to be noted that although embodiments of the presentinvention are described herein in the context of the Internet, thepresent invention is not so limited and may be used in other dataprocessing applications.

[0028] An embodiment of the present invention is schematicallyillustrated in FIG. 1. In FIG. 1, an end-user on a client computersubmits a search request to a search engine (hereinafter referred to as“original search engine”) on the Internet (see arrow 21). The originalsearch engine may perform an “Internet search”, or a search limited to aparticular web site or domain name. The search request may be a querycomprising one or more keywords, for example. The original search engineresponds to the search request by sending a search result to the clientcomputer (see arrow 22). The search result may include a list ofdocuments (e.g., web pages), links to documents, or other informationrelating to the keywords. A specific example of the just describedscenario is an end-user typing the keyword “car” in a search engine andreceiving back links to web sites that talk about car clubs, exoticcars, car racing, and like information.

[0029] A search request is an express manifestation of end-user interestin something. That is, an end-user requesting information about a topichas expressed an interest in that topic. To take advantage of this, amessage delivery program resident in the client computer listens forrequests for information such as a search request. When the messagedelivery program detects that an end-user is performing a search (seearrow 23), the message delivery program responds to the search requestby displaying its own search result in the client computer (see arrow24). The search result of the message delivery program may be displayedin a window that is under a window containing the search result from theoriginal search engine, for example. The search result of the messagedelivery program may include information cached in the client computer,served by a server computer (e.g., an adserver), or provided by anothersearch engine, for example. The search result displayed by the messagedelivery program may contain advertisements relating to the keywordincluded in the end-user's search request. Because the advertisementsrelate to the end-user's search request, the probability that theend-user will be interested in one or more of the advertisements is thusimproved. In the car example, the message delivery program may compile alist of car-related advertisements and display them to the end-user.

[0030] Preferably, the message delivery program is resident in theclient computer so that it can respond to an end-user's search requesteven when the end-user uses different search engines. That is, unlikeother targeting techniques that only work when an end-user is on aparticular web site, embodiments of the present invention may workacross different web sites. An end-user may obtain the message deliveryprogram by itself or along with free or reduced-cost computer programs,services, and other products.

[0031] Referring now to FIG. 2, there is shown a schematic diagram of acomputer network 100 in accordance with an embodiment of the presentinvention. Network 100 may include one or more client computers 101, oneor more web server computers 102, one or more message server computers103, and other computers not shown. Intermediate nodes such as gateways,routers, bridges, Internet service provider networks, public-switchedtelephone networks, proxy servers, firewalls, and other networkcomponents are not shown for clarity. In the example of FIG. 2, network100 includes the Internet; however, other types of computer networks mayalso be used. Computers may be coupled to network 100 using any type ofconnection without detracting from the merits of the present invention.

[0032] A client computer 101 is typically, but not necessarily, apersonal computer such as those running the Microsoft Windows™, AppleMacintosh™, Linux, or UNIX operating systems. An end-user may employ asuitably equipped client computer 101 to get on network 100 and accesscomputers coupled thereto. For example, a client computer 101 may beused to access web pages from a web server computer 102. It is to benoted that as used in the present disclosure, the term “computer”includes any type of data processing device including personal digitalassistants, digital telephones, wireless terminals, and the like.

[0033] A web server computer 102 may be a web site containinginformation designed to attract end-users surfing on the Internet. A webserver computer 102 may also include advertisements, downloadablecomputer programs, a search engine and products available for onlinepurchase. A web server computer 102 may also be an ad server fordelivering advertisements to a client computer 101.

[0034] A message server computer 103 may include the functionalities ofa web server computer 102. Additionally, in one embodiment, a messageserver computer 103 may also include message units for delivery to aclient computer 101. The message units may contain advertisements, forexample. Message units are further described below. A message servercomputer 103 may also include downloadable computer programs and filesfor supporting, updating, or maintaining components in a client computer101.

[0035] Web server computers 102 and message server computers 103 aretypically, but not necessarily, server computers such as those availablefrom Sun Microsystems, Hewlett-Packard, or International BusinessMachines. A client computer 101 may communicate with a web servercomputer 102 or a message server computer 103 using client-serverprotocol. It is to be noted that client-server computing is well knownin the art and will not be further described here.

[0036]FIG. 3 schematically illustrates the components of a clientcomputer 101 in accordance with an embodiment of the present invention.In one embodiment, the components of client computer 101 shown in FIG. 3are implemented in software. It should be understood, however, thatcomponents in the present disclosure may be implemented in hardware,software, or a combination of hardware and software (e.g., firmware).Software components may be in the form of computer-readable program codestored in a computer-readable storage medium such as memory, massstorage device, or removable storage device. For example, acomputer-readable medium may comprise computer-readable code forperforming the function of a particular component. Likewise, computermemory may be configured to include one or more components, which maythen be run by a microprocessor. Components may be implementedseparately in multiple modules or together in a single module.

[0037] As shown in FIG. 3, client computer 101 may include a web browser201 and a message delivery program 200. Web browser 201 may be acommercially available web browser or web client running on a clientcomputer 101. In one embodiment, web browser 201 is the MicrosoftInternet Explorer™ web browser.

[0038] In one embodiment, message delivery program 200 is downloadablefrom a message server computer 103. Message delivery program 200 may bedownloaded in conjunction with the downloading of another computerprogram. For example, message delivery program 200 may be downloaded toa client computer 101 along with a utility program that is provided freeof charge or at a reduced cost. The utility program may be provided toan end-user in exchange for the right to deliver messages to theend-user via message delivery program 200. In essence, revenue (e.g.,advertising fees) from messages delivered to the end-user helps defraythe cost of creating and maintaining the utility program.

[0039] Message delivery program 200 may include a message retriever 202,a message processor 203, a message cache 204, a context watcher 205, ahash table 206, and a search module 250. Other components such asoperating system components, utility programs, application programs, andthe like are not shown for clarity of illustration.

[0040] Message retriever 202 may include computer-readable program codefor requesting message units from message server computer 103. As willbe explained later on in connection with FIG. 5, a message unit mayinclude a message content. A message content may include, withoutlimitation, information to be displayed on a computer screen, audio tobe played, or computer-readable program code (e.g., Java applet, script,HTML, hyperlink, pointer to a web page containing a search result). Inone embodiment, a message unit may be a rules message unit or a searchmessage unit. A search message unit may be distinguished from a rulesmessage unit by a field in the message unit referred to as a “searchfield” (see search field 352 in FIG. 5). A rules message unit isprocessed when a set of rules has been satisfied, whereas a searchmessage unit is processed when the end-user performs a search usingcertain keywords. Message units are processed according to their messagecontents. For example, a message unit containing displayable messagecontent is processed by displaying its message content on a computerscreen, a message unit whose message content includes computer-readableprogram code is processed by running its message content, and so on.

[0041] Still referring to FIG. 3, message retriever 202 monitors webbrowser 201 for the uniform resource locator (URL) of web sites visitedby an end-user surfing on the Internet. For each domain visited by anend-user, message retriever 202 may send a request packet to messageserver computer 103. In one embodiment, a request packet includes:

[0042] (a) the end-user's unique identification (ID) number;

[0043] (b) the ID number of client computer 101;

[0044] (c) the local time;

[0045] (d) the domain name of the web site visited by the end-user; and

[0046] (e) a list of message units stored in message cache 204.

[0047] In one embodiment, personal information such as the actual nameof the end-user, credit card information, residence address, and thelike is stored solely in client computer 101 to protect the end-user'sprivacy.

[0048] Message server computer 103 checks if there is a correspondingmessage unit for each request packet received from client computer 101.If so, message server computer 103 sends the corresponding message unitto client computer 101. For example, message retriever 202 may send arequest packet to message server computer 103 as an end-user navigatesfrom “storekeeper.com” to “cars.com.” If a message unit is available forthe domain “cars.com”, message server computer 103 will send thatmessage unit to client computer 101.

[0049] Client computer 101 may also include a hash table 206. Hash table206 may contain information for determining whether a message unit isavailable for a particular domain. This allows message retriever 202 tofirst query hash table 206 before sending a request packet to messageserver computer 103. If hash table 206 indicates that there is a messageunit for a domain visited by the end-user, message retriever 202 mayproceed to send a request packet to message server computer 103.Otherwise, message retriever 202 may not send a request packet, therebyminimizing the amount of request packets sent to and processed bymessage server computer 103.

[0050] Message processor 203 may include computer-readable program codefor processing a message unit. Message processor 203 may process amessage unit by displaying its message content. Message processor 203may display a message content using a variety of presentation vehiclesincluding pop-ups, pop-unders, banners, message boxes, text boxes,sliders, separate windows, windows embedded in a web page, and othermechanisms for displaying information. Message processor 203 may alsoprocess a message unit by playing its message content if the messagecontent is audio or video, or by running its message content if themessage content is computer-readable program code, for example. As anexample, message processor 203 may process a message unit by displayinga pop-under (or other presentation vehicle) pointed to a web pagecontaining a search result.

[0051] Context watcher 205 may include computer-readable program codefor determining if a message unit has been triggered for processing.Context watcher 205 checks message cache 204 for rules message unitswhose rules have been satisfied and search message units that relate toan end-user's search request. If context watcher 205 finds such a rulesmessage unit or a search message unit, context watcher 205 alertsmessage processor 203 to process the message unit.

[0052] Message delivery program 200 further includes a search module250. In one embodiment, search module 250 includes the followingcomponents: a keyword extractor 252, a keyword file 254, and a keywordprocessor 255.

[0053] Keyword extractor 252 may include computer-readable program codefor parsing a search request. In one embodiment, keyword extractor 252parses a search request to extract one or more keywords from a URLdisplayed in the address window of a web browser in response to a searchrequest by an end-user. Popular search engines respond to a searchrequest by pointing the web browser employed by the end-user to a webpage containing the search result. The URL of that web page may beparsed to extract the keywords chosen by the end-user for his search.For example, performing a search for “hotrod” and “car” in a fictitioussearch engine referred to herein as “finderskeepers.com” will result ina web browser being pointed to a web page with the following URL:

[0054] http://search.finderskeepers.com/bin/search?p=hotrod+car

[0055] The web page with the URL“http://search.finderskeepers.com/bin/search?p=hotrod+car” contains thesearch result for the keywords “hotrod” and “car”. Knowing the URLformat employed by finderskeepers.com allows extraction of the wordsfollowing “. . . search?p=” and separated by “+”. String manipulationfunctions may be used to extract keywords from the URL. It is to benoted that different search engines may employ different URL formats.Accordingly, keyword extractor 252 may first parse the URL to determinethe name of the search engine, and then employ parsing rules for thatsearch engine. In the present example, keyword extractor 252 may firstparse the URL “http://search.finderskeepers.com/bin/search?p=hotrod+car”to get the name of the search engine, which is “. . .finderskeepers.com/ . . . ”, and then apply parsing rules forfinderskeepers.com. Keyword extractor 252 may take advantage ofdelimeters and end of string indicators employed by a particular searchengine to parse a URL. In one embodiment, keyword extractor 252 includesparsing rules for popular search engines.

[0056]FIG. 4A shows a web browser 201 pointed to the URL indicated inaddress window 430. In the example of FIG. 4A, web browser 201 ispointed to finderskeepers.com where an end-user is searching forinformation about hotrods and cars. FIG. 4B shows web browser 201 andaddress window 430 after the search using the keywords “hotrod” and“car”.

[0057] Referring back to FIG. 3, search module 250 also includes akeyword file 254. In one embodiment, keyword file 254 is a text filecontaining a list of relevant keywords referred to as “an include list”and a list of non-relevant keywords referred to as an “exclude list”.Note that keyword file 254 may have also have an include list but not anexclude list or vice versa. Keyword file 254 may be downloadable frommessage server computer 103 to ensure that client computer 101 alwayshas the most current keyword file. Keywords in the include list havecorresponding message units, whereas keywords in the exclude list haveno corresponding message units. As will be explained later below,keywords in the include list are processed by keyword processor 255,whereas keywords in the exclude list are not processed. In oneembodiment, keyword processor 255 processes a keyword by sending thekeyword to message server computer 103 to obtain further informationabout the keyword. By first examining the exclude list before sendingkeywords to message server computer 103, keywords that have nocorresponding message units are identified at client computer 101,thereby minimizing traffic to message server computer 103. Likewise,traffic to message server computer 103 may be minimized by firstdetermining if a keyword is in the include list before sending thekeyword to message server computer 103. Table 1 shows the contents of anexample keyword file 254. TABLE 1 Include List Exclude List hotrod papercar the books for computer Britney cellular . . . sports . . . wine . .. . . . . . .

[0058] In the example of Table 1, the exclude list includes non-relevantwords such as commonly used words that are too general to be useful. Theexclude list may also include words that have no commercial value. Forexample, “Britney” may have no commercial value to most advertisersexcept those affiliated with or licensed by Britney the pop-star.

[0059] In the example of Table 1, the include list includes relevantwords. In one embodiment, a word is considered relevant if there is acorresponding message unit for that word. For example, the word“computer” may be relevant if there is a message unit containing anadvertisement for a personal computer. Similarly, the word “book” may berelevant if there is a message unit relating to books.

[0060] Still referring to FIG. 3, search module 250 includes keywordprocessor 255. Keyword processor 255 may include computer-readableprogram code for processing a keyword. In one embodiment, a keyword maybe processed by determining if a keyword is relevant and working withmessage server computer 103 to identify message units 301 that relate tothe keyword. Keyword processor 255 is further described in connectionwith FIG. 6.

[0061]FIG. 5 schematically illustrates the components of a messageserver computer 103 in accordance with an embodiment of the presentinvention. As mentioned, message server computer 103 receives requestpackets from a client computer 101. Each received request packet mayinclude the domain name of the web site visited by an end-user. Messageserver computer 103 uses the domain name to find all message unitsavailable for that web site. For example, a message unit may contain anadvertisement for a car company that wants to display its advertisementto end-users visiting car-related web sites, such as the “cars.com” website. When a request packet indicates that an end-user is on “cars.com”,the message unit containing the car company's advertisement will be sentto the requesting client computer 101.

[0062] A message server computer 103 may include one or more messageunits 301 and a database 310. Database 310 may be a commerciallyavailable database program. Database 310 is used to keep track ofmessage units 301 and keyword related information in message servercomputer 103. For example, message server computer 103 may querydatabase 310 for all message units 301 available for a particular website.

[0063] A message unit 301 may include a message content 302, a vehicle303, rules 304, an expiration date 305, an advertiser ID 351, a searchfield 352, and a local field 353. Message content 302 may includecomputer-readable program code, text, images, audio, video, hyperlink,and other information. A message content 302 may be an advertisement ora search result (or pointers thereto) to be displayed on a computerscreen, for example.

[0064] Vehicle 303 indicates the presentation vehicle to be used inpresenting message content 302 to an end-user. For example, vehicle 303may call for the use of a pop-up, pop-under, banner, message box, textbox, slider, separate window, window embedded in a web page, and thelike.

[0065] A message unit 301 may include a search field 352. A search field352 may be a Boolean variable for indicating whether a message unit 301is a rules message unit or a search message unit. In one embodiment, amessage unit 301 is a rules message unit when search field 352 is set tological FALSE; otherwise, the message unit 301 is a search message unit.

[0066] As will be explained further below, a message unit 301 mayinclude a local field 353 for indicating whether a keyword is to beevaluated against a local include list only.

[0067] A message unit 301 may include rules 304 for specifying theconditions that need to be satisfied before the message unit istriggered for processing. Rules 304 may specify to display a messagecontent 302 when an end-user navigates to a specific web page or as soonas the message unit 301 is received in a client computer 101. Forexample, a car company may contract with the operator of a messageserver computer 103 to deliver a message unit 301 containing anadvertisement for a minivan (hereinafter, “minivan message unit”). Therules 304 of the minivan message unit may specify that the minivanadvertisement is to be displayed to end-users viewing the minivan webpage of “cars.com”. In this example, the minivan web page of cars.comhas the URL “www.cars.com/minivans”. When an end-user visits the mainpage (or any web page) of “cars.com”, message retriever 202 (see FIG. 3)will send a request packet to message server computer 103 indicatingthat the end-user is on “cars.com”. In response, message server computer103 will send the minivan message unit to client computer 101. When theend-user navigates to the URL “www.cars.com/minivans”, context watcher205 will detect that the minivan message unit has been triggered fordisplay (i.e., rules 304 of the minivan message unit have beensatisfied). Context watcher 205 will accordingly inform messageprocessor 203, which will then process the minivan message unit bydisplaying its message content.

[0068] Rules 304 may also include: (a) a list of domain names at whichthe content of a message unit 301 is to be displayed, (b) URLsub-strings that will trigger displaying of the content of the messageunit 301, and (b) time and date information. As can be appreciated,rules 304 may also be extended to take into account additionalinformation relating to an end-user (as identified by a correspondingend-user ID) such as the end-user's frequent flyer affiliation, clubmemberships, type of credit card used, hobbies and interests, and basicdemographic information. End-user related information may be stored inclient computer 101 or database 310 of message server computer 103.End-user related information may be used for targeted advertisingpurposes, for example.

[0069] As shown in FIG. 5, a message unit 301 may also include anexpiration date 305. Expiration date 305 indicates the latest date andtime the message unit 301 can still be displayed. Expired message units301 do not have to be processed and may be removed from client computer101.

[0070] A message unit 301 may include an advertiser ID 351 foridentifying a particular search message unit. Note that an advertiser ID351 does not necessarily have to be associated with an advertiser.Additionally, an advertiser ID 351 does not necessarily have to identifya message unit 301 that contains advertising. That is, an advertiser ID351 may be used to keep track of message units 301 in general.

[0071] Other techniques for receiving and processing message units arealso described in the following commonly-assigned disclosure, which isincorporated herein by reference in its entirety: U.S. application Ser.No. 10/152,204, filed on May 21, 2002, by Scott G. Eagle, David L.Goulden, Anthony G. Martin, and Eugene A. Veteska.

[0072]FIG. 6, which consists of FIGS. 6A and 6B, shows a flow diagram ofa method 600 of responding to end-user request for information inaccordance with an embodiment of the present invention. The steps ofmethod 600 are described herein using the aforementioned components ofclient computer 101 and message server computer 103 as an example.However, it should be understood that method 600 is not so limited andmay also be implemented using other components.

[0073] Beginning in step 602, one or more message units 301 are receivedin client computer 101 from message server computer 103. In oneembodiment, a message unit 301 is received in client computer 101 inresponse to an end-user navigating to a particular web site. Thatparticular web site may include a search engine, for example. Navigationto a web site that has a search engine indicates that the end-user isintending to perform a search, and thus causes delivery of searchmessage units intended for that web site. Message retriever 202 monitorsweb browser 201 for the URL of web sites visited by the end-user, andaccordingly asks message server computer 103 for message units availablefor each web site, if any. Message units 301 received from messageserver computer 103 may be stored in message cache 204. As mentioned, amessage unit 301 may be a rules message unit or a search message unitdepending on the state of its search field 352 (see FIG. 5).

[0074] In step 604, message retriever 202 detects an end-user requestfor information and so informs keyword processor 255. An exampleend-user request for information is a search request submitted to anInternet search engine. In one embodiment, a search request is detectedby monitoring an address window of a web browser (e.g., see addresswindow 430 shown in FIG. 4A) for a URL with the string “search” in it(e.g., “. . . search.domain_name/ . . . ”) or a domain name of a knownsearch engine. It is to be noted that the mechanics of monitoring anend-user's browsing activity, such as determining where an end-user isnavigating to, what an end-user is typing on a web page, when anend-user activates a mouse or keyboard, and the like, is, in general,known in the art and is not further described here.

[0075] In step 606, keyword extractor 252 extracts one or more keywordsfrom the end-user request for information. The keywords may be wordsemployed in a search request submitted to a search engine. In oneembodiment, keywords are extracted by parsing a URL appearing in anaddress window of a web browser after the submission of a searchrequest.

[0076] In step 608, keyword processor 255 requests message servercomputer 103 to send a keyword file 254 to client computer 101. Akeyword file 254 may be periodically downloaded from message servercomputer 103 to ensure that the keywords contained therein are current.Depending on the application, a keyword file 254 may also be downloadedonce upon installation of message delivery program 200 in clientcomputer 101, or from time to time but not necessarily every time anend-user navigates to a new web site.

[0077] In step 610, client computer 101 receives a keyword file 254 frommessage server computer 103. An include list in a keyword file 254 inclient computer 101 is also referred to as a “local include list”.

[0078] In step 612, keyword processor 255 determines if a keywordextracted from a search request is in an exclude list of keyword file254. If the keyword is in the exclude list, the keyword is not deemedrelevant and accordingly ignored by keyword processor 255. Processing ofthe keyword continues to step 616 if the keyword is not in the excludelist.

[0079] In step 616, keyword processor 255 determines if it is supposedto limit its determination of whether the keyword is relevant or not toan include list locally available in a keyword file 254 in clientcomputer 101 (instead of in message server computer 103). Whether or notkeyword processor 255 should only consult a local include list may bedetermined by examining local field 353 of a search message unit 301.Limiting keyword processor 255 to a local include list advantageouslyminimizes traffic to message server computer 103.

[0080] In steps 616, 618, and 620, the keyword is not processed ifkeyword processor 255 is limited to a local include list and the keywordis not in that local include list. For example, if local field 353 of asearch message unit 301 indicates that only a local include list is tobe consulted and the keyword is not in the local include list, thatparticular search message unit 301 will not be triggered for processing.

[0081] In step 622, keyword processor 255 sends the keyword to messageserver computer 103 if keyword processor 255 is not limited to a localinclude list (step 616 to step 622). Keyword processor 255 also sendsthe keyword to message server computer 103 if keyword processor 255 islimited to a local include list and the keyword is in that local includelist. Message server computer 103 receives the keyword and then employsdatabase 310 (see FIG. 5) to identify search message units 301 in clientcomputer 101 that relate to the keyword and accordingly may need to beprocessed

[0082] In step 624, client computer 101 receives a keyword ID and a listof advertiser IDs from message server computer 103, if any. The list ofadvertiser IDs identify search message units 301 that relate to thekeyword. For example, if the keyword is “car” and there is a searchmessage unit 301 containing an advertisement for a car company who isinterested in search requests with the word “car” in it, the advertiserID for that search message unit 301 is sent by message server computer103 to client computer 101. The keyword ID is an arbitrarily assignedidentification for the keyword. The keyword ID may be used forstatistical and logging purposes (e.g., how many times the word “car”appeared in a search request). Search message units 301 in clientcomputer 101 whose advertiser IDs match those in the list of advertiserIDs received from message computer 103 are deemed triggered forprocessing.

[0083] In step 626, context watcher 205 identifies the triggered searchmessage units 301 and accordingly alerts message processor 203 toprocess them.

[0084] A triggered search message unit 301 with a displayable messagecontent may be processed by displaying its content. A triggered searchmessage unit 301 with an executable message content may be processed byrunning its content. For example, a search message unit 301 may includea hyperlink to the URL of one or more web pages designated to contain asearch result for a particular keyword. As a further example, a messageserver computer 103, another search engine (i.e., not the “original”search engine the end-user is actively using), or both may perform asearch for the keyword and post the search results on a designated webpage pointed to by a search message unit 301 that has been triggered forprocessing. A message server computer 103 may request the other searchengine to perform the search after the message server computer 103receives the keyword from client computer 101 and deems the keywordrelevant.

[0085]FIG. 7 shows a search result 710 in accordance with an embodimentof the present invention. Search result 710 includes a window 711containing items 712 (i.e., 712A, 712B, 712C, . . . ). Each item 712 maybe the message content of a triggered search message unit 301. Forexample, item 712A may be from the message content of a triggered searchmessage unit that relates to the keywords “money” and “cash”. As anotherexample, the contents of window 711 may also be from a web page pointedto by a hyperlink in a message content of a triggered search messageunit 301; the web page pointed to by the hyperlink may contain theresults of a search performed by another search engine.

[0086]FIG. 8 shows a search result 810 in accordance with an embodimentof the present invention. Search result 810 includes a browser window811 containing items 812 (i.e., 812A, 812B, 812C, . . . ). Each item 812may be the message content of a triggered search message unit 301. Forexample, item 812A may be from the message content of a triggered searchmessage unit 301 that relates to the keyword “computer.”As discussedabove, items 812 may also be from a search result of another searchengine. Browser window 811 further includes a text box 813 containingthe keyword “computer”, which in this example was the keyword typed byan end-user in the original search engine (not shown) (i.e., the searchengine the end-user is actively using). Keyword processor 255 mayreceive the keyword “computer” from keyword extractor 252, and thenpaste the keyword in text box 813. Search result 710 of FIG. 7 or searchresult 810 of FIG. 8 may be displayed on a computer screen under abrowser window displaying search results from the original searchengine, for example.

[0087] In another aspect of the present invention, a search result isdisplayed in an updateable presentation vehicle. The updateablepresentation vehicle may be created once, and then refreshed with newsearch results as an end-user refines his search. This advantageouslyminimizes proliferation of presentation vehicles on a computer screen,thereby minimizing clutter and providing more relevant search results toend-users.

[0088] In one embodiment, an updateable presentation vehicle comprises apop-under displayed under a web browser in response to an end-user'ssearch request to an original search engine. The pop-under may contain asearch result from another search engine. As the end-user refines hissearch, a client program (e.g., message delivery program 200) updatesthe same pop-under to contain the latest search results from the othersearch engine, for example. By using the same pop-under for subsequentsearch results, the number of pop-unders provided to the end-user isthus minimized.

[0089] FIGS. 9(a)-9(d) schematically illustrate a pop-under 910 (i.e.,910-1, 910-2, 910-3) in accordance with an embodiment of the presentinvention. In FIGS. 9(a)-9(d), pop-under 910 is labeled as 910-1, 910-2,or 910-3 to distinguish pop-under 910 according to its content. That is,910-1, 910-2, and 910-3 refer to the same pop-under with differentcontents. Pop-under 910 may be any type of presentation vehicle that isnot immediately available for viewing by the end-user. It should benoted, however, that the present invention is not limited to the use ofpop-unders. As will be further described below, embodiments of thepresent invention may be adapted for use with other types ofpresentation vehicles.

[0090] In FIG. 9(a), pop-under 910-1 is under a web browser 901. Webbrowser 901 may be a commercially available web browser such as theMicrosoft Internet Explorer™ web browser, for example. Other types ofwindows capable of displaying information received over a computernetwork may also be used in lieu of a web browser.

[0091] Still referring to FIG. 9(a), web browser 901 contains a searchresult 903 that is in response to a search request submitted by theend-user to an original search engine. In this example, the originalsearch engine is the fictitious search engine having the URL address“www.finderskeepers.com”. Also in this example, the search request isfor the keyword “computer”. The original search engine performs a searchfor the keyword “computer”, and provides search result 903. Note thatsearch engines in general may comprise a single server computer or anetwork of server computers. For example, one server computer may beproviding a user-interface or serve as a portal for the search engine,while another server computer may be performing the actual search.

[0092] As before, message delivery program 200 (see FIG. 3) initiates asearch for the same keyword (i.e., “computer”) and provides a searchresult that is displayed in pop-under 910-1. Message delivery program200 may submit the keyword “computer” to another search engine (not theoriginal search engine, which is finderskeepers.com in this example)that may post a search result on a web page. Message delivery program200 may then display pop-under 910-1 such that it is pointed to that webpage containing the search result.

[0093] It is to be noted that as used in the present disclosure, theterms “over”, “overlying”, “under”, and “underlying” refer to theplacement of a window that may or may not be directly above or belowanother window on a computer screen. For example, another window, suchas another web browser or a folder, may be placed between web browser901 and pop-under 910-1. Pop-under 910 is depicted in FIGS. 9(a), 9(b),and 9(c) with a dashed line to indicate that it is under web browser901.

[0094] In the prior art, pop-unders are not normally used for displayingsearch results. This may be because a search result is typicallysomething an end-user requests for, and is thus conventionally thoughtof as having to be displayed for immediate viewing by the end-user. Inembodiments of the present invention, a pop-under advantageouslyprovides an end-user a second search result while minimizinginterruptions to the end-user by displaying the pop-under for laterviewing. The second search result may be from search engines notnecessarily affiliated with the original search engine. Thus, the searchresult from the original search engine will most likely be differentfrom the second search result displayed in the pop-under, providing theend-user with a more comprehensive search.

[0095] In FIG. 9(b), the end-user refines his search by submitting asearch request for the keywords “laptop” and “computer”. In response,the original search engine provides a search result 904. Pop-under 910,now labeled 910-2, is updated by message delivery program 200 to containa new search result (not shown), this time for the keywords “laptop” and“computer”. Unlike pop-unders that are created once and stay the sameuntil closed by the end-user, pop-under 910 may be updated to containmore relevant content. In this example, pop-under 910 is updated tocontain the most recent search result, thus minimizing proliferation ofwindows on the end-user's computer screen.

[0096] In FIG. 9(c), the end-user refines his search once again bysubmitting the keywords “laptop”, “computer”, and “prices” to theoriginal search engine. The original search engine responds to the newsearch request by providing a search result 905. Pop-under 910, nowlabeled 910-3, is updated by message delivery program 200 to contain thelatest search result, which is responsive to the search request for thekeywords “laptop”, “computer”, and “prices”.

[0097]FIG. 9(d) schematically shows how pop-under 910-3 may look likeafter web browser 901 and other overlying windows are closed,re-arranged, or minimized. In FIG. 9(d), pop-under 910-3 displays acontent 912, which is a search result for the keywords “laptop”,“computer”, and “prices”. Pop-under 910 may be updated with anothercontent should the end-user decide to submit another search request.

[0098] Referring now to FIG. 10, there is shown a flow diagram of amethod 1010 of displaying information received over a computer networkin accordance with an embodiment of the present invention. In step 1012,a client program (e.g., a message delivery program 200) detects a firstsearch request submitted by an end-user to an original search engine. Inresponse, the original search engine provides a search result referredto as an “original search result”. As is conventional, the originalsearch result may be displayed in the same web browser employed by theend-user to submit the search request.

[0099] In step 1014, the client program displays a first search resultresponsive to the first search request. The first search result may bedisplayed in a pop-under, which is not viewable until the end-userclears away overlying windows. That is, the first search result may bedisplayed under the web browser containing the original search result.The first search result may be generated by a single server computer(e.g., a message server computer 103) or a network of server computersthat include a search engine.

[0100] In step 1016, the client program detects a second search requestsubmitted by the end-user. The second search request may be submitted tothe same original search engine or to another original search engine.The second search request may be a refinement of the first searchrequest, or a completely new, unrelated search request.

[0101] In step 1018, the client program updates the same pop-under (thatused to contain the first search result) to display a second searchresult responsive to the second search request. For example, the secondsearch result may be posted on the same web page where the first searchresult was posted. The pop-under, which still points to the same webpage, may then be refreshed to display the second search result.

[0102] As can be appreciated from the foregoing, an updateablepresentation vehicle is useful in applications other than displaying ofsearch results. For example, an updateable pop-up may be employed todisplay the most current, relevant content. This is in contrast to theconventional way of creating separate pop-ups for different contents.

[0103]FIG. 11 shows a flow diagram of a method 1100 of displayinginformation received over a computer network in accordance with anembodiment of the present invention. In step 1102, a client program(e.g., a message delivery program 200) detects a first end-userbehavior. An end-user behavior may be the submission of a search requestto an original search engine as described above, or some other activitythat an end-user engages in while on the network. For example, anend-user behavior may be navigation from one web site to another website. The navigation to a particular web site may trigger the clientprogram to initiate delivery of message units to the client computeremployed by the end-user. The message units may call for the use of apop-up or some other presentation vehicle to display advertising orother types of information.

[0104] In step 1104, the client program displays a first content in apresentation vehicle in response to the first end-user behavior. Forexample, the client program may initiate displaying of a search result,an advertisement, or other types of information in the presentationvehicle.

[0105] In step 1106, the client program detects a second end-userbehavior.

[0106] In step 1108, the client program updates the same presentationvehicle with a second content that is responsive to the second end-userbehavior. For example, the client program may initiate display of a caradvertisement in a pop-up when the end-user navigates from one web siteto a car-related web site, and then initiate display of a wineadvertisement in the same pop-up when the end-user navigates from thecar-related web site to a wine-related web site.

[0107] While specific embodiments of the present invention have beenprovided, it is to be understood that these embodiments are forillustration purposes and not limiting. Many additional embodiments willbe apparent to persons of ordinary skill in the art reading thisdisclosure. Thus, the present invention is limited only by the followingclaims.

What is claimed is:
 1. A method to be performed in a client computer,the method comprising: displaying a first search result responsive to afirst search request in a presentation vehicle, the presentation vehiclebeing separate from a browser employed to submit the first searchrequest; detecting a second search request submitted using the browser;and updating the content of the presentation vehicle to display a secondsearch result responsive to the second search request.
 2. The method ofclaim 1 wherein the browser is a web browser and the first and secondsearch requests are submitted to an Internet search engine.
 3. Themethod of claim 1 wherein the presentation vehicle comprises apop-under.
 4. A method to be performed in a client computer, the methodcomprising: detecting a first search request submitted to a searchengine, the first search request being submitted using a browser;displaying in the browser a first search result responsive to the firstsearch request; and displaying a second search result responsive to thefirst search request in a presentation vehicle under the browser.
 5. Themethod of claim 4 wherein the presentation vehicle comprises a pop-underdirectly underneath the browser.
 6. The method of claim 4 furthercomprising: detecting a second search request; and displaying a thirdsearch result responsive to the second search request in thepresentation vehicle under the browser.
 7. A method to be performed in aserver computer, the method comprising: receiving from a client computera first keyword submitted to an original search engine, the originalsearch engine not being a part of the server computer; and providing theclient computer a first search result that is different from a searchresult provided by the original search engine.
 8. The method of claim 7further comprising: receiving from the client computer a second keywordsubmitted to the original search engine; and providing the clientcomputer a second search result that is different from another searchresult provided by the original search engine.
 9. The method of claim 8wherein the first search result is displayed in a presentation vehiclethat is updated to display the second search result.
 10. The method ofclaim 9 wherein the presentation vehicle comprises a pop-under.
 11. Anapparatus for receiving information over a computer network, theapparatus comprising: a client computer configured to receive a firstsearch result to be displayed in a first window and a second searchresult to be displayed in a second window, the first search result andthe second search result being responsive to a same first searchrequest.
 12. The apparatus of claim 11 wherein the second window isdisplayed under the first window.
 13. The apparatus of claim 11 whereinthe client computer is further configured to receive a third searchresult that is responsive to another search request, the third searchresult is to be displayed in the second window.
 14. The apparatus ofclaim 13 wherein the first window comprises a web browser pointed to asearch engine and the second window comprises a pop-under.
 15. Anapparatus for receiving information over the Internet, the apparatuscomprising: a client computer configured to display a search result in apop-under.
 16. A method of displaying information received over theInternet, the method comprising: displaying a first search result in apop-under.
 17. The method of claim 16 wherein the first search result isresponsive to a first search request submitted to a search engine, thesearch engine providing a search result to be displayed in a web browseremployed to submit the first search request.
 18. The method of claim 16further comprising: updating the pop-under with a second search result.19. A method of presenting information to an end-user in a computernetwork: detecting a first end-user behavior; displaying a first contentin a presentation vehicle, the first content being responsive to thefirst end-user behavior; detecting a second end-user behavior; andupdating the presentation vehicle with a second content responsive tothe second end-user behavior.
 20. The method of claim 19 wherein thefirst end-user behavior comprises submitting a first search request andthe second end-user behavior comprises submitting a second searchrequest.
 21. The method of claim 19 wherein the first content comprisesa first search result and the second content comprises a second searchresult.
 22. The method of claim 19 wherein the first end-user behaviorcomprises navigating to a first web page and the second end-userbehavior comprises navigating to a second web page.